/*
 * Screen.java
 * Created on August 9, 2008, 1:05 PM by Uru
 *
 * The lowest level of organization in TRPGM
 * An abstract class that requires its subclasses to deal with input and output
 */
package ScreenSystem;

import java.awt.*;
import javax.swing.*;

public abstract class Screen{
    
    //a screen must be able to draw itself
    public abstract void draw(Graphics2D g, JComponent io);
    
    //keyboard input, override to activate a key
    public void keyPressUp(){};
    public void keyPressDown(){};
    public void keyPressLeft(){};
    public void keyPressRight(){};
    public void keyPressB1(){};
    public void keyPressB2(){};
    public void keyPressB3(){};
    public void keyPressB4(){};
    public void keyPressB5(){};
    public void keyPressB6(){};
    public void keyPressB7(){};
    public void keyPressB8(){};
    public void keyPressB9(){};
    public void keyPressB10(){};
    public void keyReleaseUp(){};
    public void keyReleaseDown(){};
    public void keyReleaseLeft(){};
    public void keyReleaseRight(){};
    public void keyReleaseB1(){};
    public void keyReleaseB2(){};
    public void keyReleaseB3(){};
    public void keyReleaseB4(){};
    public void keyReleaseB5(){};
    public void keyReleaseB6(){};
    public void keyReleaseB7(){};
    public void keyReleaseB8(){};
    public void keyReleaseB9(){};
    public void keyReleaseB10(){};
    //mouse input, override to activate a type
    //x,y contains the current mouse position, button contains the button that was pressed or released
    public void mouseClicked(int x, int y, int button){};
    public void mousePressed(int x, int y, int button){};
    public void mouseReleased(int x, int y, int button){};
    public void mouseDragged(int x, int y, int button){};
    public void mouseMoved(int x, int y){};
}
